//
// Created by Martin on 2021/9/30.
//

#ifndef DESIGNPATTERN_CPP_PROXY_H
#define DESIGNPATTERN_CPP_PROXY_H

#include "Subject.h"
#include "RealSubject.h"

/**
 * 代理类
 * @note 保存一个被代理类(Subject)的引用, 这样可以用来代替实体(RealSubject)
 * 代理类只用关注所代理功能的部分, 而无需关注实体的其他细节
 */
class Proxy : public Subject{
public:
    Proxy();
    ~Proxy();
    void request() override;

private:
    RealSubject *subject{};
};


#endif //DESIGNPATTERN_CPP_PROXY_H
